Data storage system having redundant solid state data storage device

ABSTRACT

A RAID device is provided with a pair of non-volatile solid state data storage devices and one or more rotating disk drives, giving improved access time performance to the array. Data is staged on the pair of solid state data storage devices, and periodically backed up to the rotating disk drive(s).

FIELD OF THE INVENTION

[0001] The present invention relates to data storage devices for storageof electronic data, and particularly though not exclusively to a datastorage device comprising at least one rotating disk drive, and one ormore solid state data storage devices capable of substantially fasterread and write operations than the disk drive.

BACKGROUND TO THE INVENTION

[0002] Conventional data storage systems for high capacity data storageinclude conventional ‘hard drive’ disk drive devices as are well-knownin the art. Conventional disk drive comprise a rotating disk having amagnetically readable and writeable coating, which revolves at highrevolutions per minute. Such disk drives may store data capacities inthe range 4 to 32 Gbytes or more for each individual drive. For greaterstorage capacities, devices are arranged in arrays, for example inredundant arrays of inexpensive disks (RAID arrays) as are known in theart. Conventional hard disk drives have relatively slow access times foraccessing data, compared to conventional solid state devices such asdynamic random access memories (DRAM). The relatively high access timefor accessing data in a hard disk drive is predominantly a result ofmoving a read head to read a particular part of the rotating disk.

[0003] Hard disk drives are extremely common due to their relatively lowprice per unit data storage capacity. However, there are also known inthe prior art solid state data storage devices having relatively lowerdensities of data storage, and having much faster access times than harddisk drives but with higher costs than hard disk drives. Such devicesare currently niche market devices, due to their cost. These solid statememory devices have data storage capacities between those of hard diskdrives and conventional DRAM's.

[0004] The applicants have developed a data storage system having acombination of rotating hard disk drive and solid state data storagedevices in a form which is capable of low cost production and which maybe suitable for large scale mass market applications. Such systems mayprovide a high performance data storage device solution for replacementof conventional hard disk drives in mass market applications.

[0005] The applicants have studied how users may wish to actuallyutilize the high performance solid state data storage devices incustomer applications, and as a result of this study have identifiedvarious problems with the usage of these high performance data storagedevices. The applicants estimate that the optimum usage of such highperformance data storage devices would be in conjunction with one ormore conventional hard disk drives. For optimum technical utility, theapplicants envisage that a plurality of high performance solid state nonvolatile data storage devices will be used in conjunction with one or aplurality of conventional hard disk drive devices, whereby morefrequently accessed data is stored on the solid state data storagedevice, whereas less frequently accessed data is stored on a hard diskdrive.

[0006] A least cost solution is to provide a single high performancesolid state data storage device in series with one or more rotating diskdrives, where data is read and written through the solid state device,such that most frequently used data is cached within the solid statedata storage device.

[0007] Conventional RAID devices use a plurality of redundantly arrangeddisks such that data is encoded over a number of disks, so that anindividual disk can fail, whilst the data is still recoverable fromredundancy encoded data stored on the other disks. Introducing a singlehigh performance solid state data storage device introduces a singlepoint of failure into a data storage system. Any data which is solelystored on the solid state data storage device will be at risk of loss ifthe device should fail.

[0008] A possible alternative solution to the problem of single point offailure using an arrangement of a high performance solid state datastorage device and one or a plurality of hard disk drives, is to use twohigh performance solid state data storage devices, which mirror eachother in the data which each device stores. The presence of duplicatecopies of data removes the single point of failure. However, adisadvantage of this solution is that the cost of this system increasessubstantially due to the use of two high performance solid state datastorage devices, but only the benefit of the storage capability of asingle high performance solid state data storage device is achieved, thesecond high performance data storage device being wholly redundant.

SUMMARY OF THE INVENTION

[0009] The present invention relies on the use of two high performancesolid state data storage devices and at least one rotating disc datastorage device operating under control of a controller device, and makesefficient utility of the available user data storage space in both highperformance solid state data storage devices. The result is theprovision of a bulk data storage system having a fast write time, butwith removal of any single point of failure in a data storage system,with the benefit of an enhanced effective reliability. More than halfthe data storage space on the combined plurality of high performancedata storage devices may be available for use for storing user data.

[0010] One effect of the specific embodiments of the present inventionmay be to speed up access to user data stored in a data storage devicesystem or sub-system comprising a plurality of disk drives.

[0011] In a conventional prior art volatile cache memory, an objectiveis to provide rapid write times and rapid read times, so that data whichwould otherwise be stored on a rotating hard disk, thereby incurringlong access times, is instead stored in a fast access memory, reducingthe access time for regularly accessed information. In contrast in thespecific embodiments of the present invention, an objective is toprovide a rapid write access to large volumes of memory, so that a writeconfirmation signal can be rapidly returned to a host device, so that aprocessing in the host device is not delayed in processing data, bywaiting for a write acknowledgement signal, thereby allowing theprocessor to carry out other data processing tasks sooner. A fast writeprocess to large amounts of memory may be available to a host, using thepresently disclosed data storage system.

[0012] Two or more high performance non volatile solid state datastorage devices are arranged with at least one disk drive partition in agroup. Each high performance data storage device is logically dividedinto two partitions, the larger partition of each high performance datastorage device being allocated to user data, and a smaller partition ofeach of high performance data storage device being allocated as a datastaging area. The first data staging area in the first high performancedata storage device is logically matched to the second user data area ofthe second high performance data storage device and vice versa, thesecond data staging area of the second high performance data storagedevice is logically matched to the first user data area of the firsthigh performance data storage device. Hence, the disk drive partitions,which are part of the group, are used to capture data from the datastaging areas. Movement of data between the high performance solid statedevices and the hard disk drive(s) is achieved under control of acontroller device.

[0013] In this specification, the term non volatile solid state datastorage device is used to mean a data storage device having no movingparts, and which retains memory of data for an extended period of daysor months when external power is removed from the device. Such devicesmay include magnetic random access memory (MRAM) devices, dynamic randomaccess memory (DRAM) devices having a battery power supply,ferro-electric random access memory (FERAM) devices, and flashelectrically programmable read only memory devices. Such devices may beimplemented as discrete units, for example of a size and shape suitablefor direct replacement of conventional rotating disk hard drives, or maybe implemented as part of a controller device of a RAID, on a same chipor component board as such a controller device.

[0014] In the data storage system of the present disclosure, there canbe rapidly acknowledged a quick access write of data to a non-volatilememory device, which represents an improvement on the write times andacknowledgement times for prior art non-volatile rotating disk datastorage devices.

[0015] In one mode of operation a write operation to the group routesthe user data to be stored to the user data area of the first highperformance data storage device. Additionally, a copy of the data iswritten to the second data staging area of the second high performancedata storage device. Once this is complete, a host computer considersthe transaction complete and is free to carry on with other functions.This results in a substantially shorter write time than a write time toa conventional hard disk drive.

[0016] As a separate process, data stored in the second data stagingarea of the second high performance data storage device is copied to thedisk drive partition of a conventional disk drive data storage deviceand deleted from the second data staging area of the high performancedata storage device. This frees up staging space for subsequent writeoperations to the second data staging area of the second highperformance data storage device and may allow the second size of thesecond data staging area to be substantially smaller than the user dataspace on the second high performance data storage device.

[0017] Read operations from the group are directed to a said user dataarea on the first or second high performance data storage device.

[0018] Should a failure of a high performance data storage device occur,it is necessary to recover the original data onto a new high performancedata storage device. Once this is installed, all the user data may becopied back into place from an archive which exists on the disk drivepartition.

[0019] According to a first aspect of the present invention there isprovided a data storage system comprising:

[0020] at least one rotating disk data storage device;

[0021] a plurality of solid state data storage devices, each having adata capacity less than a data capacity of said rotating disk datastorage device;

[0022] wherein each solid state data storage device is divided into adata staging area and a user data area; and

[0023] said plurality of data storage devices are arranged such that aset of data is written to at least two of said plurality of solid statedata storage devices; and

[0024] data is moved from a said data staging area of a said solid statedata storage device into said rotating disk data storage device.

[0025] Preferably a said solid state data storage device comprises acontroller device comprising a processor and a computer program forcontrolling said processor, said controller device operating to:

[0026] receive data from a host device;

[0027] write said data to said plurality of solid state data storagedevices, such that a copy of said data is stored on each said solidstate data storage device; and

[0028] transfer data from a said data staging area of at least one saidsolid state data storage device to a data partition area of said atleast one rotating disk data storage device.

[0029] A said solid state data storage device may comprise a magneticrandom access memory device.

[0030] Said solid state data storage device may comprise at least oneintrinsically volatile dynamic random access memory, and at least onebattery device, providing a combined non-volatile solid state datastorage device.

[0031] Said solid state data storage device may comprise a non-volatileflash electrically programmable read only memory.

[0032] Said solid state data storage device may comprise a ferroelectricrandom access memory device.

[0033] Preferably said solid state data storage devices have a memorycapacity of greater than 1 Gbyte.

[0034] Preferably said solid state data storage devices are non-volatiledevices.

[0035] Preferably a said data staging area comprises less than 50% ofthe data storage capacity of a corresponding said solid state datastorage device.

[0036] Preferably the data storage system comprises a controller devicecomprising a processor and a computer program for controlling saidprocessor, and a plurality of data buses connecting said controller withsaid plurality of solid state data storage devices, wherein each saidsolid state data storage device communicates with said controller deviceby a corresponding respective separate said bus.

[0037] According to a second aspect of the present invention there isprovided a method of storing data in a data storage system comprising aplurality of rotating disk drive data storage devices and a plurality ofsolid state data storage devices, said method comprising the steps of:

[0038] writing a first block of data to a first user data area in afirst said solid state data storage device;

[0039] writing said first block of data to a second data staging area ina second said solid state data storage device;

[0040] writing said data stored in said second data staging area of saidsecond solid state data storage device to a first data partition area insaid plurality of rotating disk drives.

[0041] The method may further comprise the steps of:

[0042] writing a second block of data to a first data staging area ofsaid first solid state data storage device;

[0043] writing said same second block of data to a second user datastorage area of said second solid state data storage device; and

[0044] writing said second block of data from said first data stagingarea of said first solid state data storage device to a second partitionmemory area of said plurality of rotating disk drives.

[0045] Said step of writing data to said second data staging area andsaid first user data area may comprise:

[0046] (i) receiving said first block of data in a plurality of datasegments, each data segment being smaller than said first block of data;

[0047] (ii) writing a said segment to said second data staging area andwriting said data segment to said first user data area substantiallysimultaneously;

[0048] (iii) after writing said segment to said second data staging areaand said first user data area, selecting a new segment;

[0049] (iv) repeating steps (ii) to (iii) until all said segments ofsaid data first block are written; and

[0050] (v) generating a confirmation signal for confirming that saidfirst data block has been written.

[0051] Preferably said method comprises the steps of:

[0052] if new data has been written to said second data staging area,copying data of said second data staging area to said first datapartition area of said plurality of rotating disks.

[0053] Preferably said method comprises the steps of:

[0054] determining whether said second data staging area is availablefor reading;

[0055] determining whether unimpeded access to said first data partitionarea of said plurality of rotating disks is available; and

[0056] moving data of said second data staging area to said first datapartition area of said plurality of rotating disks.

[0057] Said step of writing data to said first data staging area andsaid second user data area may comprise:

[0058] (vi) receiving said second block of data in a plurality of datasegments, each data segment being smaller than said second block ofdata;

[0059] (vii) writing a said segment to said first data staging area andwriting said segment to said second user data area substantiallysimultaneously;

[0060] (viii) after writing said segment to said first data staging areaand said second user data area, selecting a new segment;

[0061] (ix) repeating steps (vii) to (viii) until all said segments ofsaid second data block are written; and

[0062] (x) generating a confirmation signal for confirming that saidsecond data block has been written.

[0063] Preferably said method comprises the steps of:

[0064] if new data has been written to said first data staging area,moving said data of said first data staging area to a second datapartition area of said plurality of disks.

[0065] Preferably said method comprises the steps of:

[0066] if new data has been written to said first data staging area,moving data of said first data staging area to said second datapartition area of said plurality of rotating disks.

[0067] Preferably said method comprises the steps of:

[0068] determining whether new data has been written into a first datastaging area;

[0069] determining whether said first data staging area is available forreading;

[0070] determining whether unimpeded access to a second data partitionarea of said plurality of rotating disks is available; and

[0071] moving data of said first data staging area to said second datapartition area of said plurality of rotating disks.

BRIEF DESCRIPTION OF THE DRAWINGS

[0072] For a better understanding of the invention and to show how thesame may be carried into effect, there will now be described by way ofexample only, specific embodiments, methods and processes according tothe present invention with reference to the accompanying drawings inwhich:

[0073]FIG. 1 illustrates schematically a logical layout of a datastorage system, cooperating with a host device for storage of data;

[0074]FIG. 2 illustrates schematically an internal hardware architectureof a data storage system according to a best mode specificimplementation of the present invention;

[0075]FIG. 3 illustrates schematically a first data storage operationand a partitioning of a memory area of a plurality of high performancesolid state data storage devices, and a plurality of rotating diskdrives in a best mode implementation according to the present invention;

[0076]FIG. 4 illustrates schematically steps carried out by a controldevice comprising the data storage system, for carrying out a firstwrite process for writing data received from a host device;

[0077]FIG. 5 illustrates schematically a first back-up processcontrolled by a control device of the data storage system, for backingup data stored on a high performance solid state data storage device toone or more rotating disk drives;

[0078]FIG. 6 illustrates schematically a second data storage operationof said data storage system in which a host computer writes data to afirst data staging area of a first solid state data storage device and asecond user data area of a second solid state storage device, and datain said first data staging area is backed up to a first partition areaof a plurality of rotating disk drives;

[0079]FIG. 7 illustrates schematically a second write process carriedout by a controller device of said data storage system for writing datablocks to a first data staging area of a first solid state data storagedevice and to a second user data area of a second solid state datastorage device; and

[0080]FIG. 8 illustrates schematically a second back up process forbacking up of data in a first data staging area of a first solid statedata storage device to a first data partition area of a plurality ofrotating disk drives.

DETAILED DESCRIPTION OF THE BEST MODE FOR CARRYING OUT THE INVENTION

[0081] There will now be described by way of example the best modecontemplated by the inventors for carrying out the invention. In thefollowing description numerous specific details are set forth in orderto provide a thorough understanding of the present invention. It will beapparent however, to one skilled in the art, that the present inventionmay be practiced without limitation to these specific details. In otherinstances, well known methods and structures have not been described indetail so as not to unnecessarily obscure the present invention.

[0082] Referring to FIG. 1 herein, there is illustrated schematically alogical diagram illustrating a data storage system according to a firstspecific implementation of the present invention. A controller means 103receives data from a host computer 100 and can read and write to a firstmemory area 101 of relatively slow access time memory, provided by oneor a plurality of rotating hard disk drives. The controller means 103can also read and write data from one or a plurality of faster accessmemory areas provided by non-volatile solid state data storage devices102, having a relatively faster access time than the hard disk datastorage devices. Data is transferred between the hard disk data storagearea 101 and the solid state data storage area 102 under control of thecontroller means 103, which is typically implemented as a computerprogram and processor. A hard disk partition memory area 104 is used toregularly back up data from the solid state data storage device memoryarea to provide recovery of data in the event of a failure of eithersolid state data storage device.

[0083] Selected data is moved from the rotating disk data storagedevices onto the solid state data storage devices. The data selected issuitably the most frequently accessed data. Data which is accessed lessfrequently, may be stored on the rotating hard disk data storagedevices, where access times are slower. Therefore, for the mostfrequently accessed data read/write times are improved compared to theconventional case using rotating disk data storage devices. However toachieve a cost effective solution, conventional rotating hard diskdrives are retained in the data storage system for storage of bulk userdata which is relatively less frequently accessed. For a host computerusing the data storage system, there is an overall improvement in datastorage access times for much of the data which is read and written tothe data storage system, compared to a prior art data storage systemhaving solely rotating hard disk drives.

[0084] Referring to FIG. 2 herein, there is illustrated a physicalarchitecture of a data storage system 200, comprising an array of one ora plurality of rotating disk data storage devices 201-204; two or morenon-volatile solid state high capacity memory data storage devices 205,206; and a controller device 207 for managing storage of data amongstthe one or plurality of rotating disk data storage devices and theplurality of solid state data storage devices. A host device 208 readsand writes data from and to the data storage system 200, via a knownsmall computer system interface (SCSI) cable, or a known Fiber ChannelAssociation cable and interface 210.

[0085] The data storage system of FIG. 2 may comprise a legacy redundantarray of inexpensive disks (RAID) device, with the addition of theplurality of non-volatile solid state data storage devices 205, 206 andassociated controller 207 for controlling transfer of data between therotating disk drives and the solid state memory devices. Each solidstate data storage device may externally look very similar to a rotatinghard disk data storage device, being of a similar size, shape andweight. However, the solid state data storage device may have read andwrite times of the order of 1000 times quicker than the conventionalrotating disk hard drive unit. The solid state data storage devices maytypically have a data storage capacity of one to two Gbytes.

[0086] In a best mode implementation, the solid state data storagedevices comprise Magnetic Random Access Memory (MRAM) data storagedevices. These devices are non-volatile, and have relatively fast readand write access times compared to conventional rotating disk hard driveunits. The MRAM devices are intrinsically non-volatile, that is to saywhen electrical power supply is removed from the devices, the data isretained in the memory and is not lost.

[0087] However, in an alternative implementation, the solid state ofdata storage devices may comprise flash EPROMS, ferro electric randomaccess memories (FERAM), or Dynamic Random Access Memory (DRAM) arrays.In the case of a DRAM unit, DRAM devices are intrinsically volatile, andlose their stored data when power is removed. In order to make anon-volatile solid state data storage device, a combination of an arrayof DRAM devices, and a battery power supply in a casing is provided.Although DRAM's provide better performance in terms of read and writeaccess times than a comparable MRAM unit, there is the disadvantage ofthe need to provide a battery back-up to overcome the intrinsicvolatility of DRAM devices to provide a non-volatile DRAM data storageunit.

[0088] On the other hand, flash EPROM's are intrinsically non-volatile,but have poorer read and write access times than a comparable MRAMdevice.

[0089] FERAM devices are intrinsically non volatile, and have accesstimes comparable with those of MRAM devices, but have much lower storagecapacity densities.

[0090] MRAM data storage units, DRAM data storage units and EPROM datastorage units are alternative embodiments, but in the best mode the MRAMdata storage unit is selected to give the optimum combination ofintrinsic non-volatility, and fast read and write access times.

[0091] Controller device 207 comprises a local processor 209 having thetask of managing data transfers between the first and second solid statedata storage devices and the one or more hard disk drives, and managingstorage of data as between the plurality of hard disk drives. The localprocessor operates in accordance with control software 211, operating aplurality of management algorithms for effecting the data transfersbetween individual data storage devices in the data storage system 200.

[0092] Where a plurality of rotating hard disk drives are used, userdata may be striped across the plurality of rotating hard disk drives,such that blocks of user data are redundancy encoded using a known errorcorrection coding, for example a Reed Solomon coding, and each datablock is stored across the plurality of rotating disk drives. In theevent of a failure of any one disk drive, the data stored on that diskdrive may be recoverable from the redundancy coding in the data storedon the other rotating disk drives. If any one disk fails, there isenough data on the remaining disks to reconstruct the lost data on thefailed disk. A new replacement disk drive can be inserted to replace thefailed disk drive and the lost data on the new disk drive can bereconstituted automatically from the redundancy coded data on the otherdisk drives. Thus, within the plurality of rotating disk drives there isno single point of failure. It is important that introduction of a solidstate data storage device does not introduce a single point of failure.

[0093] The provision of two or more solid state data storage devicesovercomes the risk of a single point of failure, in the event that oneof the solid state data storage devices should fail. Thus, a singlepoint of failure in terms of hardware is avoided. The plurality of harddisk drives are augmented by the plurality of solid state data storagedevices in a way such that the introduction of the solid state datastorage devices do not introduce a single point of failure into the datastorage system 200.

[0094] However, to avoid loss of data in the event of a failure of asingle solid state data storage device, there must be ensured that thedata on each solid state data storage device is recoverable fromelsewhere in the array of data storage devices.

[0095] A simple mirror replication of the data stored on first solidstate data storage device 205 onto second solid state data storagedevice 206 would achieve reliability. However, this is an inefficientsolution, since there is incurred the cost of two solid state datastorage devices, but the memory capacity of only one solid state datastorage device is utilized.

[0096] In the best mode implementation presented herein, it is aimed toavoid a single point of failure by introduction of two or more solidstate data storage devices, whilst optimizing the relatively highperformance data storage capacity provided by those devices for storageof user data. In a first configuration, the data storage system operatessuch that as files are retrieved from the one or more rotating disk datastorage devices, they are copied to the solid state data storage devices205, 206 which act as a cache for those files. Various logical rules maybe embedded in the controller device 207 for determining when a filewill be copied to the solid state data storage devices, to achieveoptimum performance. The controller device may include one or aplurality of algorithms for determining which data files are the mostused, and for determining whether these should be stored in the solidstate memory data storage device, or overwritten in the solid state datastorage device. The solid state data storage devices act as a cache forthe one or more rotating disk drives.

[0097] The controller device 207 maintains a table data containingentries of where each block of data has been stored. As data is movedfrom the solid state data storage device memory to the rotating diskdrive area, and back again from the rotating disk drive areas to thesolid state data storage device areas, the table data is updated. In theevent of a failure of either solid state data storage device, thecontroller can determine where a block of lost data is also copiedeither on the other solid state data storage device or on the pluralityof rotating disk drives.

[0098] In a second configuration, the solid state data storage devicesare configured as permanent user data storage areas to augment thestorage areas of the one or more rotating hard disk drives, forpermanent storage of bulk user data.

[0099] Referring to FIG. 3 herein, there is illustrated schematicallypartitioning of data areas within the first and second solid state datastorage devices 205, 206 and movement of data between memory areas onthe solid state data storage devices and the hard disk drive datastorage devices. With two solid state data storage devices, fullredundancy may be achieved, whilst utilizing more than the data storagecapacity of one solid state data storage device and achieving as far aspossible the combined data storage capacity of both solid state datastorage devices.

[0100] The first solid state data storage device 205 is partitionedlogically such that there is a first main user data area 300, whichforms the bulk of the memory capacity of the device, and a first datastaging area 301. Similarly, the second solid state data storage deviceis partitioned into a second user data area 302, occupying the bulk ofthe memory area of that solid state data storage device, and a seconddata staging area 303. In the best mode, each data staging area mayconstitute less than 50% of the total memory capacity of thecorresponding respective solid state data storage device.

[0101] Whilst the best mode implementation herein shows a separateprocessor 209 comprising control device 207, in principle, the functionsof the control device can be provided by software in the host device 208itself. However, this has the disadvantage of taking up processing powerfrom a processor in the host device 208. The best mode implementationdescribed herein is aimed at a mid-range data storage solution. Theinvention is not limited to use of a separate processor at the controldevice 207, and the functionality of the control device 207 may becarried out using a processor in host device 208.

[0102]FIG. 3 illustrates a first storage operation of a host computerwriting to the data storage system. The host computer may see thecontroller 207 of the data storage system as one logical drive unit, forexample drive D. The controller handles data storage to all the datastorage devices in the data storage system. The host computer, when itwrites data to the data storage system writes data to the controller207, which then writes data to the first user data area 300 of the firstsolid state data storage device, and writes a copy of that same datainto the second data staging area 303 of the second solid state datastorage device. These write operations occur simultaneously. Bearing inmind that the second data staging area 303 has a significantly lowerdata capacity than the first user data area 300, if data is continued tobe written to the data storage system, the second data staging area 303will be the first high performance data storage area to become full.Therefore, the controller device 207 moves the data in the second datastaging area 303 into a first partitioned memory area 304 stored on theplurality of hard disk drives. The memory management strategy is to keepthe second data staging area 303 as empty as possible, by regularlytransferring the data stored in that staging area onto the firstpartition area 304 in the plurality of disk drives 201-204, as soon aspossible after data is received in the second data staging area.

[0103] In the best mode herein, the second data staging area 303 isemptied on a first in-first out basis to the first hard disk datapartition. However, in other implementations, other algorithms forselecting the data to be emptied are possible. It is important to ensurethat the second data staging area 303 does not overflow, resulting inoverwrite of data, before this data has been backed up onto the firstdata partition area 304 on the hard disk drives. If the second datastaging area 303 is allowed to become full, then any write operationsfrom the host computer will be held off, and the host computer couldstall.

[0104] Referring to FIG. 4 herein, there is illustrated schematically afirst write process carried out by controller device 207 upon receivinga data block from host device 208, for storage in the data storagesystem. At all times, data written into the first solid state datastorage device 205 must be replicated in the second solid state datastorage device 206, in case either of the solid state data storagedevices should fail. In step 400, a block of data is received from thehost device 208 by the controller device 207. In step 401 the block ofdata is written to the first user data area of the first solid statememory device. In step 402, the same data block is written to the seconddata staging area of the second solid state memory device. In practice,steps 401, 402 may be carried out in interleaved manner, such that partof the data block is written to the first solid state storage device205, followed by the same segment of data being written to the secondsolid state storage device 206, followed by a further segment written tothe first said state data storage device, the further segment beingwritten to the second solid state data storage device and so on untilthe whole of the data block has been written to both solid state datastorage devices segment by segment. Using a single processor 209, thisoperation therefore takes twice as long (i.e. about 20 ps) as writingthe data block to a single solid state data storage device. However,since the write times to the solid state data storage device are of theorder of 10 μs, this is of the order of one thousand times faster thanthe write time to the conventional rotating disk drive, which is of theorder of 10 ms. Therefore, doubling the write time to the solid statedata storage device is insignificant compared to the write time to arotating disk drive device.

[0105] However, the write speed can be reduced to the write time of asingle solid state data storage device, if two processors are used inparallel to write the segments of data to the first and second solidstate storage devices simultaneously in parallel. In the best modeimplementation, a single processor is used for reasons of costreduction, and the small disadvantage in increased write time to thesolid state data storage devices is accepted.

[0106] In step 404, once the control device 207 has written the completedata block to both solid state data storage devices, it sends aconfirmation signal back to the host device 208, which the host devicemay use as a trigger to send a further data block for storage.

[0107] Use of a high performance non-volatile solid state data storagedevice for receiving written data from a host computer allows a quickresponse time for sending the confirmation signal back to the host'scomputer, acknowledging that the data has been correctly written tomemory.

[0108] In contrast, prior art conventional volatile cache plus hard diskdata storage devices operate on a write-through basis, in which datawritten to the cache is rewritten on to the rotating hard disk drivebefore an acknowledgement signal is sent back to a host computer writingthe data. In this way, in the conventional write-through cache datastorage device systems, it is ensured that the data is written tonon-volatile memory on the rotating disk, before an acknowledgementsignal is sent back to the host device. Thus, if there is a powerfailure during a write-through operation, no acknowledgement signal willbe received, and the data stored in volatile memory may be lost. Thehost device will then re-send the data, because the acknowledgementsignal has not been received. However, the conventional write-throughcache data storage systems, incur the penalty of slow access time to therotating hard disk drives.

[0109] In contrast, in the presently disclosed system, anacknowledgement signal is received by a host device faster, because datais written to a quick access time high performance high capacitynon-volatile solid state data storage device.

[0110] This write time of approximately 20 μs in the best mode hereincompares with a prior art write time, taking example of a prior art5-disk raid array, of the order of 40 ms. The prior art raid array has arelatively high write time because the data is striped across the5-disks, and in order to check that the data has been written correctly,the data must also be re-read from each of the 5 disks by a controldevice. Therefore a significant write speed advantage is achieved by thebest mode implementation over prior art arrays.

[0111] Referring to FIG. 5 herein, there is illustrated schematically afirst back-up process of the data storage system. In the first back upprocess, data in the second data staging area 303 of the second solidstate data storage device is transferred to the first partition area 304on the plurality of disks 201-204, as soon as the solid state datastorage device is available to read from. The data in the second datastaging area 303 is re-written to the first data partition area as soonas possible, in order to keep the second staging area 503 available forreceiving as large a quantity of write data as possible. This is incontrast to a conventional prior art volatile cache, where the cache isemptied as late as possible, in order to cache as large a quantity asdata at once as possible.

[0112] Second staging area 303 is used to transiently store data on itsway to the first rotating disk partition area 304. The same data is alsostored in the first user data area 300, so that if the second solidstate data storage device fails at any time, data recovery is availablefrom the first solid state data storage device.

[0113] In step 500, the processor 209 under control of control software211 checks whether any data has been recently written to the second datastaging area 303. If new data has been recently written to the secondstaging area, then in step 501 the controller checks whether the secondstaging area is available for reading, that is to say checks that thesecond solid state memory device is not busy, and checks in step 502whether there is unimpeded access to the rotating hard disk(s). If boththe hard disk drives and the second staging area are available, then instep 503 data is transferred from the second data staging area to thefirst hard disk partition area.

[0114] If the physical rotating hard disk is already being accessed fora write operation, then a transfer from the solid state device to therotating hard disk cannot be made. Both the rotating hard disk must beavailable for writing, and the solid state data storage devices must beavailable for reading in order to complete step 503 of copying the datain the second data staging area to the first hard disk partition area.

[0115] Referring to FIG. 6 herein, there is illustrated schematically asecond storage operation of the data storage system carried outcontemporaneously with the processes described with reference to FIGS.3-5 herein, for writing a second block of data to the data storagesystem.

[0116] An equivalent process to that described with reference to FIGS. 3to 5 occurs during a write operation of a block of data from the hostdevice, whereby the second block of data is written to the second userdata area 302 of the second solid state data storage device, and to thefirst data staging area 301 of the first solid state data storagedevice. The data written into the first data staging area isperiodically backed up to a second partition memory area 600 on theplurality of disk drives 201-204.

[0117] Therefore, the first data staging area 301 has written to it thesame data as the second user data area 302, the second data staging area303 has the same data written to it as the first user data area 300, thesecond data staging area 303 is backed up onto the first hard diskpartition area 304; and the first data staging area 304 is backed uponto the second hard disk partition area 600.

[0118] Referring to FIG. 7 herein, there is illustrated schematically asecond write process carried out by controller device 207. In step 700,the second data block is received by the controller device from the hostdevice. In step 701, the received block of data is written to the seconduser data area of the second solid state memory device.Contemporaneously with step 701, the same block of data is written tothe first data staging area 301 of the first solid state memory devicein step 702. Similarly, as with steps 401 and 402 described hereinabove, writing of a block of data to the second user data area and thefirst data staging area is made by partitioning the second block of datainto segments of data which are written alternatively to the second userdata area and first data staging area until the whole of the data blockhas been written. In step 703, the block of data having been written tothe second user data area and the first data staging area, aconfirmation signal is returned to the host device, upon receipt ofwhich the host device may send a further block of data.

[0119] Referring to FIG. 8 herein, there is illustrated schematically abackground back up operation for backing up the content of the firstdata staging area to the second hard disk partition area. The process ofFIG. 8 is similar and runs in parallel to the process described hereinbefore with reference to FIG. 5. In step 800, the processor 207determines whether new data has been written to the first staging area.

[0120] In step 801, it is checked whether the first staging area isavailable for reading. In step 802, it is checked whether the rotatinghard disk drive(s) have unimpeded write access. In step 803, providedthe second solid state data storage device is available for reading, andthe one or more rotating disk drives are available for writing, thendata is transferred from the first data staging area in the second solidstate data storage device on to the second hard disk partition area,thereby emptying the data in the first data staging area on to therotating hard disk drives.

[0121] In the best mode, staging areas are is needed because writing toa single solid state data storage device would give a single point offailure without there being parallel writing to another solid statememory storage device. It is important that at every stage, there arealways two copies of the data. In the best mode, the two copies of eachsegment of a first block of data exist either:

[0122] In a user data area of a solid state data storage device, and ina data staging area of the other solid state data storage device; or

[0123] In the first user data area of the first solid state data storagedevice and in the first data partition area of the plurality of disks.

[0124] In parallel with this, a second block of data is stored in thefirst and second solid state data storage devices, and this has at leasttwo copies stored at all times including:

[0125] The second block of data stored in the first data staging area ofthe first solid state device and the second user data area of the secondsolid state data storage device; or

[0126] The second data block stored in the second user data area of thesecond solid state data storage device and the second disk partitionarea of the plurality of hard disks.

[0127] Between the two solid state data storage devices, the first blockof data is mirrored, and additionally the second block of data ismirrored. The rate at which the data staging area can be emptied islimited by the rate at which the data can be transferred and written tothe hard disk.

[0128] A large amount of data is built up in the user data areas of thesolid state data storage devices. In an embodiment in which thecontroller writes to the two solid state devices on a single bus, forfrequently used data, the access time to a host computer is thereforetwice the access time of each of the solid state devices, ofapproximately 10-20 μs, being a significant improvement on themillisecond access times of prior art hard disk storage arrays. Singlepoint of failure is eliminated by the use of a pair of solid state datastorage devices.

[0129] For a best mode embodiment in which the controller has a separatebus to each solid state device, data can be written in parallel to thetwo solid state devices, and the access time is equivalent to the accesstime of one solid state device.

[0130] For less frequently used data, occasionally the host will need toaccess the hard disk drives, in which case access times will be slower.However, on average the average access time for data will improvecompared to the prior art RAID case. The size of the first and seconddata staging areas 304, 600, are preferably large enough to contain allthe data in the first and second user data areas 300, 302. With currentsolid state data storage technology each non-volatile solid state devicewill typically have a data capacity of the order of 2 Gbytes.

[0131] Because the solid state data storage devices have no movingparts, their reliability can be expected to be greater than thereliability of a conventional rotating hard disk drive having movingparts. However, even though the probability of failure of a solid statedevice is lower than that of a rotating hard disk drive, redundancy byprovision of two solid state data storage devices is still desirable toavoid a single point of failure.

[0132] Data stored on the plurality of solid state data storage devicesand in the partition area of the rotating disk drive memories need notbe redundancy encoded, since physical redundancy exists by virtue of thecopies of data being present on either two solid state data storagedevices and/or a solid state data storage device and a hard diskpartition area. By removing the need for redundancy coding, access timesare significantly improved to the data storage device. Calculation oferror correction codes incurs a time penalty which is significantcompared to the write time to the solid state data storage devices. Thisis not the case for writing to rotating disk drive devices, where theerror correction code times are small compared to the write times to therotating disk drives. The control device 207 becomes aware of anyfailures of a said solid state data storage device by means of aconventional command acknowledgement protocol as is known in the art.

1. A data storage system comprising: at least one rotating disk datastorage device; a plurality of solid state data storage devices, eachhaving a data capacity less than a data capacity of said rotating diskdata storage device; wherein each solid state data storage device isdivided into a data staging area and a user data area; and saidplurality of data storage devices are arranged such that a set of datais written to at least two of said plurality of solid state data storagedevices; and data is copied from a said data staging area of a saidsolid state data storage device into said rotating disk data storagedevice.
 2. The data storage system as claimed in claim 1 , comprising acontroller device comprising a processor and a computer program forcontrolling said processor, said controller device operating to: receivedata from a host device; write said data to said plurality of solidstate data storage devices, such that a copy of said data is stored oneach said solid state data storage device; and transfer data from a saiddata staging area of at least one said solid state data storage deviceto a data partition area of said at least one rotating disk data storagedevice.
 3. The data storage system as claimed in claim 1 , wherein asaid solid state data storage device comprises a magnetic random accessmemory device.
 4. The data storage system as claimed in claim 1 ,wherein said solid state data storage device comprises at least oneintrinsically volatile dynamic random access memory, and at least onebattery device, providing a combined non-volatile solid state datastorage device.
 5. The data storage system as claimed in claim 1 ,wherein said solid state data storage device comprises a non-volatileflash electrically programmable read only memory.
 6. The data storagesystem as claimed in claim 1 , wherein said solid state data storagedevice comprises a ferro electric random access memory device.
 7. Thedata storage system as claimed in claim 1 , wherein said solid statedata storage devices have a memory capacity of greater than 1 Gbyte. 8.The data storage system as claimed in claim 1 , wherein said solid statedata storage devices are non-volatile devices.
 9. The data storagesystem as claimed in claim 1 , wherein a said data staging areacomprises less than 50% of the data storage capacity of a correspondingsaid solid state data storage device.
 10. The data storage system asclaimed in claim 1 , comprising a controller device comprising aprocessor and a computer program for controlling said processor, and aplurality of data buses connecting said controller with said pluralityof solid state data storage devices, wherein each said solid state datastorage device communicates with said controller device by acorresponding respective separate said bus.
 11. A method of storing datain a data storage system comprising a plurality of rotating disk drivedata storage devices and a plurality of solid state data storagedevices, said method comprising the steps of: writing a first block ofdata to a first user data area in a first said solid state data storagedevice; writing said first block of data to a second data staging areain a second said solid state data storage device; writing said datastored in said second data staging area of said second solid state datastorage device to a first data partition area in said plurality ofrotating disk drives.
 12. The method as claimed in claim 11 ,furthercomprising the steps of: writing a second block of data to a first datastaging area of said first solid state data storage device; writing saidsame second block of data to a second user data storage area of saidsecond solid state data storage device; and writing said second block ofdata from said first data staging area of said first solid state datastorage device to a second partition memory area of said plurality ofrotating disk drives.
 13. The method as claimed in claim 11 , whereinsaid step of writing data to said second data staging area and saidfirst user data area comprises: (i) receiving said first block of datain a plurality of data segments, each data segment being smaller thansaid first block of data; (ii) writing a said segment to said seconddata staging area and writing said data segment to said first user dataarea substantially simultaneously; (iii) after writing said segment tosaid second data staging area and said first user data area, selecting anew segment; (iv) repeating steps (ii) to (iii) until all said segmentsof said data first block are written; and (v) generating a confirmationsignal for confirming that said first data block has been written. 14.The method as claimed in claim 11 , comprising the steps of: determiningwhether new data has been written into said second data staging area;and if new data has been written to said second data staging area,copying data of said second data staging area to said first datapartition area of said plurality of rotating disks.
 15. The method asclaimed in claim 11 , comprising the steps of: determining whether newdata has been written into said second data staging area; determiningwhether said second data staging area is available for reading;determining whether unimpeded access to said first data partition areaof said plurality of rotating disks is available; and copying data ofsaid second data staging area to said first data partition area of saidplurality of rotating disks.
 16. The method as claimed in claim 11 ,wherein said step of writing data to said first data staging area andsaid second user data area comprises: (vi) receiving said second blockof data in a plurality of data segments, each data segment being smallerthan said second block of data; (vii) writing a said segment to saidfirst data staging area and writing said segment to said second userdata area substantially simultaneously; (viii) after writing saidsegment to said first data staging area and said second user data area,selecting a new segment; (ix) repeating steps (vii) to (viii) until allsaid segments of said second data block are written; and (x) generatinga confirmation signal for confirming that said second data block hasbeen written.
 17. The method as claimed in claim 11 , comprising thesteps of: determining whether new data has been written into a firstdata staging area; and if new data has been written to said first datastaging area, copying said data of said first data staging area to asecond data partition area of said plurality of disks.
 18. The method asclaimed in claim 11 , comprising the steps of: determining whether newdata has been written into a first data staging area; and if new datahas been written to said first data staging area, copying data of saidfirst data staging area to said second data partition area of saidplurality of rotating disks.
 19. The method as claimed in claim 11 ,comprising the steps of: determining whether new data has been writteninto a first data staging area; determining whether said first datastaging area is available for reading; determining whether unimpededaccess to a second data partition area of said plurality of rotatingdisks is available; and copying data of said first data staging area tosaid second data partition area of said plurality of rotating disks.